Skip to content

fix: use background context for async worker release - #498

Merged
Zoe Zhao (zoez7) merged 4 commits into
agent-substrate:mainfrom
mesutoezdil:fix/worker-release-context
Jul 24, 2026
Merged

fix: use background context for async worker release#498
Zoe Zhao (zoez7) merged 4 commits into
agent-substrate:mainfrom
mesutoezdil:fix/worker-release-context

Conversation

@mesutoezdil

Copy link
Copy Markdown
Contributor

AssignWorkerStep starts a background goroutine to release a stale
worker assignment. It builds its context from the request ctx, but
that ctx is cancelled right after the workflow returns (releaseLock
runs on defer). If the goroutine has not called UpdateWorker yet, the
call fails with a cancelled context and the worker keeps the stale
assignment forever. Nothing else clears it while the pod is alive.

Fix: use context.Background() for the release call, same pattern used
in cmd/atenet/internal/router/resumer.go.

Tested with go test ./cmd/ateapi/internal/controlapi/...

The release goroutine used the workflow ctx, which is cancelled
right after the request returns. This can kill the release call
before it runs, leaving the worker stuck with a stale assignment.

@EItanya Eitan Yarmush (EItanya) left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change definitely makes sense to me, I'd love Julian Gutierrez Oschmann (@juli4n) or Zoe Zhao (@zoez7) to take a look as they are more familiar with this path

@zoez7
Zoe Zhao (zoez7) merged commit aeb6ec5 into agent-substrate:main Jul 24, 2026
11 checks passed
@mesutoezdil
Mesut Oezdil (mesutoezdil) deleted the fix/worker-release-context branch July 25, 2026 10:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants